package main

import (
	"embed"
	"fmt"
	"os"
	"os/signal"
	"runtime"
	"lindk/qbl"
)

// 编译原则
var 是否开发联动前端 = false //1  编译的时候记 "是否开发联动前端" 得改成false
//2  文件  桌面开发环境/src/lindk/requst/index.js  里的 第5行  baseURL:"/api",  要注释掉
//3  新建终端cd 到 "桌面开发环境"文件路径  ->执行 npm run build 把前端vue编译打包
//4  再新建终端 执行 go build -ldflags "-w -s -H windowsgui"   编译去黑框

//go:embed guge.exe
var 谷歌安装包 embed.FS

func main() {
	if 全_主窗口.Q取谷歌浏览器地址() == "" {
		switch runtime.GOOS {
		case "darwin":
			全_系统jie.X信息框("错误", "没有找到谷歌浏览器环境")
		case "windows":
			全_系统jie.X信息框("错误", "没有找到谷歌浏览器环境 将自动安装")
			全_文件.Embed内存文件_释放到目录(谷歌安装包,"guge.exe",全_文件.QX取运行目录())
			全_程序.Y运行程序("./guge.exe", false)
		default:
			全_系统jie.X信息框("错误", "没有找到谷歌浏览器环境")
		}
		return
	}
	Ws广播.C初始化()
	Ws标识.C初始化()
	qbl.J基础变量初始化(&Ws广播,&Ws标识)
	全_响应.C初始化()
	等待 := make(chan int, 1)
	go 启动后端服务器(&等待)
	<-等待
	if 是否开发联动前端 {
		全_后端基础url = 全_文本.C创建文本("http://localhost:{1}/", 全_开发联动前端端口)
	} else {
		全_后端基础url = 全_文本.C创建文本("http://localhost:{1}/", 全_后端服务器端口)
	}
	全_主窗口.C创建窗口(全_后端基础url, 800, 900, false)
	go 开发监测ctrl加c退出事件()
	启动事件()
	全_主窗口.D等待谷歌窗口关闭()
	fmt.Print("窗口关闭了")
}

func 启动事件() {
	//例子
	go func() {
		for {
			全_时间.YC延迟程序(1000)
			Ws广播.T推送消息_文本("go_获取实时时间", 全_时间.D到文本(全_时间.QX取现行_时间()))
		}
	}()
}

func 开发监测ctrl加c退出事件() {
	监测通道 := make(chan os.Signal, 1)
	signal.Notify(监测通道, os.Interrupt)
	<-监测通道
	全_主窗口.G关闭谷歌窗口()

}
